In order to qualify for certain government standards, cryptographic software must satisfy certain conditions. One such condition, such as imposed by FIPS 140-2 (which has been promulgated by the Federal Government on May 25, 2011 and revised on Dec. 3, 2012), is that the cryptographic algorithms self-validate to ensure that they have not been corrupted. The process of certifying that such software meets the FIPS 140-2 standard can be expensive, often costing on the order of $100,000.
One conventional approach has satisfied the FIPS 140-2 conditions for cryptographic software on mobile devices running the ANDROID operating system (OS) by implementing the self-validating cryptographic algorithms in machine code to run on the mobile devices, the machine code being called as an external library by an ANDROID OS application the ANDROID OS application running within a DALVIK virtual machine (VM).
Another conventional approach has satisfied the FIPS 140-2 conditions for cryptographic software on mobile devices running the ANDROID operating system by implementing the self-validating cryptographic algorithms on a specialized hardware module. A similar hardware-based approach has been used by KoolSpan, Inc. of Bethesda Md. in its TrustChip® mobile encryption engine products (see http://www(dot)koolspan(dot)com/products/mobile-encryption-engine(dot)html and linked pages).